/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package phd.changeidentifiers.testing.display.objects;

import phd.dupenois.changeidentifiers.dotpatterns.DotPattern;
import phd.dupenois.changeidentifiers.footprints.Footprint;

/**
 *
 * @author mpd209
 */
public class TimeStepDBObject implements Comparable<TimeStepDBObject>{
    private int id;
    private DotPattern dotPattern;
    private Footprint footprint;
    private boolean redraw;
    private long started;
    private long timeTaken;
    private long algStarted;
    private long algTimeTaken;
    private double symmetricAreaDifference;

    private ChangeIdentifierSetSnapshotDBObject changeIdentifierSetSnapshot;
    public TimeStepDBObject(){
        this.redraw = false;
    }

    /**
     * @return the dotPattern
     */
    public DotPattern getDotPattern() {
        return dotPattern;
    }

    /**
     * @return the footprint
     */
    public Footprint getFootprint() {
        return footprint;
    }

    /**
     * @param footprint the footprint to set
     */
    public void setFootprint(Footprint footprint) {
        this.footprint = footprint;
    }

    /**
     * @return the started
     */
    public long getStarted() {
        return started;
    }

    /**
     * @return the timeTaken
     */
    public long getTimeTaken() {
        return timeTaken;
    }

    /**
     * @param timeTaken the timeTaken to set
     */
    public void setTimeTaken(long timeTaken) {
        this.timeTaken = timeTaken;
    }

    /**
     * @return the redraw
     */
    public boolean isRedraw() {
        return redraw;
    }

    /**
     * @param redraw the redraw to set
     */
    public void setRedraw(boolean redraw) {
        this.redraw = redraw;
    }

    /**
     * @return the algStarted
     */
    public long getAlgStarted() {
        return algStarted;
    }

    /**
     * @param algStarted the algStarted to set
     */
    public void setAlgStarted(long algStarted) {
        this.algStarted = algStarted;
    }

    /**
     * @return the algTimeTaken
     */
    public long getAlgTimeTaken() {
        return algTimeTaken;
    }

    /**
     * @param algTimeTaken the algTimeTaken to set
     */
    public void setAlgTimeTaken(long algTimeTaken) {
        this.algTimeTaken = algTimeTaken;
    }

    public int compareTo(TimeStepDBObject arg0) {
        return (int)Math.signum(this.getStarted()-arg0.getStarted());
    }

    /**
     * @return the changeIdentifierSetSnapshot
     */
    public ChangeIdentifierSetSnapshotDBObject getChangeIdentifierSetSnapshot() {
        return changeIdentifierSetSnapshot;
    }

    /**
     * @param changeIdentifierSetSnapshot the changeIdentifierSetSnapshot to set
     */
    public void setChangeIdentifierSetSnapshot(ChangeIdentifierSetSnapshotDBObject changeIdentifierSetSnapshot) {
        this.changeIdentifierSetSnapshot = changeIdentifierSetSnapshot;
    }

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @param dotPattern the dotPattern to set
     */
    public void setDotPattern(DotPattern dotPattern) {
        this.dotPattern = dotPattern;
    }

    /**
     * @param started the started to set
     */
    public void setStarted(long started) {
        this.started = started;
    }

    /**
     * @return the symmetricAreaDifference
     */
    public double getSymmetricAreaDifference() {
        return symmetricAreaDifference;
    }

    /**
     * @param symmetricAreaDifference the symmetricAreaDifference to set
     */
    public void setSymmetricAreaDifference(double symmetricAreaDifference) {
        this.symmetricAreaDifference = symmetricAreaDifference;
    }
}
